﻿using System.Collections.Generic;
using Kratos.Framework.ContentManagement.Models.SystemRights;
using Kratos.Framework.ContentManagement.ViewModels;

namespace Kratos.Framework.Modules.Core.Services
{
    public interface IUserInfoServices
    {
        void Save(UserInfo userInfo);

        bool IsExistUser(string userId);

        void SetAuthenticationCookie(string username);

        void SignOut();

        string HashPassword(string password);

        UserInfo CurrentUser { get; }

        UserInfo GetUser(string userId);

        /// <summary>
        /// 获取给定组之外的user
        /// </summary>
        IEnumerable<UserInfo> GetUserWithoutGroup(Group group, int pageIndex, int pageSize);

        bool CanLogOn(LogModel model);

        /// <summary>
        /// 根据用户id组成的,号分割的字符串获取所有用户
        /// </summary>
        IList<UserInfo> GetUsersByIdJoinString(string userIds);
    }
}
